工作流引擎技术介绍 您所在的位置:网站首页 工作流是什么 工作流引擎技术介绍

工作流引擎技术介绍

2023-04-03 15:20| 来源: 网络整理| 查看: 265

01、开源工作流

1、Osworkflow

  Osworkflow是一个轻量化的流程引擎,基于状态机机制,数据库表很少,Osworkflow提供的工作流构成元素有:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)等,但不支持会签、跳转、退回、加签等这些操作,需要自己扩展开发,有一定难度,如果流程比较简单,osworkflow是很号的选择。官方网站:www.opensymphony.com/osworkflow/

2、JBPM

    JBPM由JBoss公司开发,目前最高版本JPBM7,不过从JBPM5开始已经跟之前不是同一个产品了,JBPM5的代码基础不是JBPM4,而是从Drools Flow重新开始,基于Drools Flow技术在国内市场上用的很少,所有不建议选择jBPM5以后版本,jBPM4诞生的比较早,后来JBPM4创建者Tom Baeyens离开JBoss后,加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。官方网站:www.jbpm.org/

3、Activiti

   Activiti由Alfresco软件开发,目前最高版本activiti 7。activiti的版本比较复杂,有activiti5、activiti6、activiti7几个主流版本。activiti5和activiti6的核心leader是Tijs Rademakers,由于团队内部分歧,在2017年时Tijs Rademakers离开团队,创建了后来的flowable, activiti6以及activiti5代码已经交接给了 Salaboy团队, activiti6以及activiti5的代码官方已经暂停维护了, Salaboy团队目前在开发activiti7框架,activiti7内核使用的还是activiti6,并没有为引擎注入更多的新特性,只是在activiti之外的上层封装了一些应用。结论是activiti谨慎选择。官方网站:www.activiti.org/

4、flowable

   flowable基于activiti6衍生出来的版本,flowable目前最新版本是v6.7.0,开发团队是从activiti中分裂出来的,修复了一众activiti6的bug,并在其基础上研发了DMN支持,BPEL支持等等,相对开源版,其商业版的功能会更强大。以flowable6.4.1版本为分水岭,大力发展其商业版产品,开源版本维护不及时,部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、ES等。Flowable 项目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表单引擎(Form Engine)等模块。官方网站:flowable.com/open-source…

5、Camunda

Camunda基于activiti5,所以其保留了PVM,最新版本Camunda7.15,保持每年发布2个小版本的节奏,开发团队也是从activiti中分裂出来的,发展轨迹与flowable相似,同时也提供了商业版。

6、商业化:天翎、易正、普元  

  笔者接触多的,都是以Activiti或者Flowable入手,自己整合业务,做法也是比较粗暴,直接将画好的BPMN文件放项目加载。最近两年,开始关注到做流程中心的多了起来,微服务化的流程中心给公司其他项目提供流程引擎功能支持。

02、流程设计器

流程设计器选型

  流程设计器是流程引擎很重要的一部分,良好的可视化编辑和友好的交互会让人耳目一新,并节省大量开发时间。当然像OSWorkflow 那样,把没有说成‘不要求图形化工具来开发工作流,而推荐手工编写 xml 格式的工作流程描述符。OSWorkflow 不希望一个非技术用户修改工作流程’清新脱俗。

1、bpmn-js

    bpmn-js 是 BPMN 2.0 渲染工具包和 Web 模型。bpmn-js 正在努力成为 Camunda BPM 的一部分。bpmn-js 使用 Web 建模工具可以很方便的构建 BPMN 图表,可以把 BPMN 图表嵌入到你的项目中,容易扩展。bpmn-js是基于原生js开发,支持集成到vue、react等开源框架中。

官方网站:bpmn.io/

图片

2、mxGraph

   mxGraph是一个强大的JavaScript流程图前端库,可以快速创建交互式图表和图表应用程序,国内外著名的ProcessOne和draw.io都是使用该库创建的强大的在线流程图绘制网站. 由于mxGraph是一个开放的js绘图开发框架,我们可以开发出很炫的样式,或者完全按照项目需求定制。官方网站:jgraph.github.io/mxgraph/

图片

3、Activiti-Modeler

    Activiti 开源版本中带了web版流程设计器,在Activiti-explorer项目中有Activiti-Modeler,优点是集成简单,开发工作量小,缺点是界面不美观,用户体验差。

图片

4、flowable-modeler

 flowable开源版本中带了web版流程设计器,展示风格和功能基本跟Activiti-Modeler一样,优点是集成简单,开发工作量小,缺点是界面不美观,用户体验差。

图片

5、仿钉钉设计器

  流程配置简单,学习成本低,普通用户容易上手,流程简单,只能配置简易的流程。

图片

6、Eclipse插件bpmn2-modeler

   笔者以前经常使用Eclipse绘制流程图,基本可用。就是得常备Eclipse,Idea用户难受。

图片

  结论:如果项目是一次性买卖,用Eclipse绘制流程图,项目启动加载部署对应BPMN,简单省事;如果项目人手并不多,流程还有几个,对可视化及交互要求不高,选择集成原生设计器是不错的选择;如果对可视化,对交互要求比较高,流程很多,也需要良好的管理,及运行时监控,建议bpmn-js+自己熟悉的流程引擎定制化。(有钱的买服务)当然也可以fork笔者的开源项目,并在基础上进行自己的定制化开发。

03、二次开发工作流

开源项目地址:github.com/tudouxian/w…

相应功能:

辅助模型设计:将流程分类、流程表达式、流程监听器、流程审核按钮外置表单化,便于设计阶段选择。 模型设计器:重新设计用户任务、服务任务、分支条件、表单挂载。 流程服务管理:便于流程发布及版本管理。 流程运行时管理:分为个人工作台和管理工作台,个人工作台仅仅展示当前登录用户相关任务,管理工作台展示所有人员相关任务,便于运行时干预。 通用审核操作:审核同意、指定驳回、转办、委派、协同、前加签、后加签、归还任务、流程升级迁移等作了统一封装。 跟踪监控:用BPMN.js重绘跟踪监控图,能动态展示各节点运行时状态。

图片

图片

微信公众号搜索 土豆仙 关注更多即时技术文章,整理原创不易,转载请标明出处。

image



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有